package com.example.demo.util;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

/**
 * Created by Administrator on 2017/6/3.
 */
public class RandomUtil {
//    public static void main(String[] args) {
//        List<Date> dates=new ArrayList<>();
//        for (int i = 0; i < 6; i++) {
//            Date date = randomDate("2017-05-07", "2017-05-09 09:32:22");
//            dates.add(date);
//            out.println(date);
//        }
//        out.println("___________________________");
//        dates.sort(Date::compareTo);
//        for (Date date : dates) {
//            out.println(date);
//        }
//    }

    public static int getno(int max,int min){
        Random random = new Random();
        int s = random.nextInt(max)%(max-min+1) + min;
        return s;
    }


    public static int sjlist(){
        int [] arr = {1,2,3,4};
        //产生0-(arr.length-1)的整数值,也是数组的索引
        int index=(int)(Math.random()*arr.length);
        int rand = arr[index];
        return rand;
    }

    public static String namelist(){
        String [] arr = {"圆通","韵达","天天","京东","顺丰"};
        Random rand = new Random();
        int num = rand.nextInt(5);
        String s = arr[num];
        return s;
    }


    /**
     * 生成随机时间
     *
     * @param beginDate
     * @param endDate
     * @return
     */
    public static Date randomDate(String beginDate, String endDate) {

        try {

            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

            Date start = format.parse(beginDate);//构造开始日期

            Date end = format.parse(endDate);//构造结束日期

//getTime()表示返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

            if (start.getTime() >= end.getTime()) {

                return null;

            }

            long date = random(start.getTime(), end.getTime());

            return new Date(date);

        } catch (Exception e) {

            e.printStackTrace();

        }

        return null;

    }

    public static long random(long begin, long end) {

        long rtn = begin + (long) (Math.random() * (end - begin));

//如果返回的是开始时间和结束时间，则递归调用本函数查找随机值

        if (rtn == begin || rtn == end) {

            return random(begin, end);

        }

        return rtn;

    }
}
